/**
    GpsNetwork lets you download files and log some system parameters from NetRs DGPS receivers.

    Copyright (C) 2009  Eduardo Maureira

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

    email:emaureir@gmail.com
 */
package io;

import java.awt.Image;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Vector;

import javax.swing.ImageIcon;

import org.apache.log4j.Logger;

import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;

/**
 * @author eduardo
 *
 */
public class Archivo {

	private static final Logger logger = Logger.getLogger(Archivo.class);

	public static Vector<String> leer (String archivoLeer)
	{
		logger.debug("leer--->archivoLeer="+archivoLeer);
		Vector<String> respuesta;
		Lector leeArchivo;
		BufferedReader in;
		String nuevaLinea;
		respuesta = new Vector<String>();
		leeArchivo = new Lector(archivoLeer);
		leeArchivo.Open();
		in = leeArchivo.getIn();

		try {
			while ((in!=null)&&( (nuevaLinea = in.readLine())!=null))
			{
				respuesta.add(nuevaLinea);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		leeArchivo.Close();

		return respuesta;
	}

	public static StringBuffer leerString(String archivoLeer)
	{
		logger.debug("leerString---->archivoLeer="+archivoLeer);
		Vector<String> lineas;
		lineas = leer(archivoLeer);
		StringBuffer respuesta;
		respuesta = new StringBuffer();
		for (int i=0;i<lineas.size();i++)
		{
			respuesta.append(lineas.elementAt(i));
			respuesta.append("\n");
		}
		return respuesta;
	}
	public static void guardar(String archivoDestino, String texto)
	{	       
		logger.debug("guardar--->archivoDestino="+archivoDestino);

		try
		{
			// Create file 
			FileWriter fstream = new FileWriter(archivoDestino);
			BufferedWriter out = new BufferedWriter(fstream);
			out.write(texto);
			//Close the output stream
			out.close();
		}catch (Exception e)
		{
			//Catch exception if any
			logger.error("Error: " + e.getMessage());
		}
	}

	public static boolean eliminar (String pathFileName)
	{
		logger.debug("eliminar--->pathFileName="+pathFileName);
		if (Ruta.existe(pathFileName))
		{
			File archivoEliminar;
			archivoEliminar = new File(pathFileName);
			return archivoEliminar.delete();
		}
		return false;
	}

	public static boolean aseguraArchivo(String pathFileName)
	{
		logger.debug("aseguraArchivo--->pathFileName="+pathFileName);
		boolean respuesta;

		File nuevo;
		nuevo = new File(pathFileName);
		try {
			Carpeta.aseguraCarpeta(nuevo.getParent());
			respuesta = nuevo.createNewFile();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			respuesta = false;
		}
		return respuesta;
	}

	public static Image base64ToImage(String base64String)
	{
		byte[] imageBytes;
		imageBytes =Base64.decode(base64String);
		ImageIcon ii;
		ii = new ImageIcon (imageBytes);
		return ii.getImage();
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {

	}

}
